প্রোগ্রাম তৈরি করার সময় শুরুতেই প্রোগ্রামাররা কোড লিখতে বসে যান না। বরং প্রথমে চিন্তা করতে হয় যে, প্রোগ্রাম লিখে যে সমস্যাটি সমাধান করা হবে, সেটি কীভাবে করা হবে। যে কাজগুলো করা হবে, সেগুলোর প্রতিটি ধাপ লিখে ফেলা হয়। এই ধাপগুলোকেই বলে অ্যালগরিদম (algorithm)। আর অনেক সময় লেখার চেয়ে ছবি এঁকে বোঝা সহজ। সমস্যা সমাধানের ধাপগুলোকে যে ছবির মাধ্যমে প্রকাশ করা হয়, তাকে বলা হয় ফ্লোচার্ট (flowchart)।
ধরা যাক, একজন শিক্ষার্থী প্রতিদিন সকালে তার বাইসাইকেল চালিয়ে কলেজে যায়। তবে বাইসাইকেল যদি কোনো কারণে নষ্ট থাকে, তাহলে সে রিকশায় চড়ে কলেজে যায়। কলেজে যাওয়ার ধাপগুলোকে এভাবে লেখা যায়—
১) সাইকেল ঠিকঠাক আছে? উত্তর ‘হ্যাঁ' হলে ৪নং ধাপে যাও, উত্তর ‘না’ হলে পরের ধাপে যাও ।
২) অভিভাবকের কাছ থেকে রিকশাভাড়ার টাকা নাও ।
৩) রিকশা ভাড়া করে কলেজে যাও, এরপরে পাঁচ নম্বর ধাপে যাও ।
৪) সাইকেল চালিয়ে কলেজে যাও।
৫) কলেজে পৌঁছে গিয়েছ।
উপরের ধাপগুলোকে আমরা বলতে পারি ওই শিক্ষার্থীর কলেজে যাওয়ার অ্যালগরিদম। অ্যালগরিদম লেখার কোনো সুনির্দিষ্ট নিয়ম-কানুন নেই। ধাপগুলোর ক্রম সঠিক হতে হবে যেন ধাপগুলো ধারাবাহিকভাবে অনুসরণ করলে সমস্যার সমাধান হয়। একটি ধাপের কাজ শেষ হলে তার পরের ধাপের কাজটি করতে হবে। তবে, কোনো কারণে যদি ঠিক পরের ধাপটি বাদ দিয়ে একটি বিশেষ ধাপের কাজ করতে চাই, সেক্ষেত্রে সেটি উল্লেখ করে দিতে হবে। যেমন— উপরের উদাহরণে আমরা তৃতীয় ধাপের শেষে বলে দিয়েছি, পাঁচ নম্বর ধাপে যেতে। এক্ষেত্রে চার নম্বর ধাপের কাজটি আর করা হবে না। আবার, এক নম্বর ধাপে সাইকেল যদি ঠিকঠাক থাকে, তাহলে সরাসরি চার নম্বর ধাপে চলে গিয়েছি, এক্ষেত্রে দুই এবং তিন নম্বর ধাপের কাজ আর করা হবে না ।
ফ্লোচার্ট তৈরির কিছু নিয়ম আছে। বিভিন্ন ধরনের নির্দেশ বোঝানোর জন্য বিভিন্ন ধরনের চিহ্ন ব্যবহার করা হয়। এরকম কিছু প্রাথমিক চিহ্ন 5.5 চিত্রে দেখানো হলো।
শুরু / শেষ
ইনপুট / আউটপুট
প্রসেস
কন্ডিশন বা শর্ত পরীক্ষা
কানেক্টর (একাধিক ফ্লো একসঙ্গে এসে যুক্ত হয়)
এ ছাড়া বিভিন্ন অ্যারো (তির) চিহ্ন দিয়ে দিক নির্দেশ করা হয়।
চিত্র 5.5 ফ্লোচার্টের বিভিন্ন চিহ্ন
উপরের অ্যালগরিদমটি ফ্লোচার্ট আকারে প্রকাশ করা যাবে এভাবে—
শুরু
সাইকেল ঠিক আছে?
না
সাইকেল চালিয়ে কলেজে যাও
অভিভাবকের কাছ থেকে রিক্সাভাড়ার টাকা নাও
রিক্সাভাড়া ভাড়া করে
কলেজে যাও
হ্যাঁ
কলেজে পৌঁছে গিয়েছ
শেষ
চিত্র 5.6 : কলেজে যাওয়ার ফ্লোচার্ট
অ্যালগরিদম ও ফ্লোচার্ট তৈরির পরে নির্দিষ্ট প্রোগ্রামিং ভাষায় কোড লেখা হয়। কোড লেখার পরে সেই কোড বিভিন্ন টেস্ট-কেইস (test case) দিয়ে পরীক্ষা করা হয়। এক্ষেত্রে বিভিন্ন রকম ইনপুটের জন্য প্রোগ্রামটি প্রত্যাশিত আউটপুট দিচ্ছে কি না সেটি যাচাই করে দেখা হয়। যদি কোনো টেস্ট কেইসের জন্য প্রত্যাশিত আউটপুট না আসে, তখন বুঝতে হবে প্রোগ্রামটি সঠিক নয়। প্রোগ্রামটি ভুল আউটপুট দেওয়ার পেছনে দুটি কারণ থাকতে পারে। প্রথমত, সমস্যাটি সমাধানের জন্য যে অ্যালগরিদম ব্যবহার করা হয়েছে সেটি সঠিক নয়। দ্বিতীয়ত, অ্যালগরিদম সঠিক হলেও, অ্যালগরিদম অনুসরণ করে প্রোগ্রাম লেখার সময় কোনো ভুল হয়েছে। কোডে এ ধরনের ভুল থাকলে তাকে বাগ (bug) বলা হয়। এ পর্যায়ে প্রোগ্রামের যাবতীয় বাগ খুঁজে বের করে সমাধান করা হয়, অর্থাৎ, প্রোগ্রামটি ত্রুটিমুক্ত করা হয়। এই ধাপটিকে বলা হয় ডিবাগিং (debugging)|
সব টেস্ট কেইসের জন্য প্রোগ্রাম যখন ঠিকঠাক কাজ করে, তখন সেটি রিলিজ (release) করা হয়। বড় বড় প্রোগ্রামের ক্ষেত্রে রিলিজ করার সময় ব্যবহারকারীর জন্য নির্দেশনা বা ইউজার ম্যানুয়াল (User manual) তৈরি করা হয়।
প্রোগ্রাম তৈরির মূল ধাপগুলো হচ্ছে :